﻿#ifndef SETUP_H
#define SETUP_H

#include <QObject>
#include <QQuickWidget>
#include <QQmlContext>
#include <dbHelper.h>
#include <tcpclient.h>
#include <QFileDialog>
#include <QMessageBox>
#include <xlsxdocument.h>
#include <CommonHelper.h>
#include <QTimer>
#include "logHelperJ.h"
#include <QSerialPortInfo>
#include <SerialPortClient.h>

class SetUp : public QObject
{
    Q_OBJECT

public:
    SetUp();
    ~SetUp();

signals:
    void hfcg();
    void syhfn(double data);
public:
    //设备
    Q_INVOKABLE  int addNewEqu(QVariantMap);
    Q_INVOKABLE  QVariantMap queryEquInfo();
    Q_INVOKABLE  QVariantMap queryEquInfoConnect();     // jnn
    Q_INVOKABLE  QVariantList queryEquInfoByStatus(QString);
    Q_INVOKABLE  int delEquInfo(QString);
    Q_INVOKABLE  int connectEqu(QString);
    Q_INVOKABLE  QVariantMap querySingleEquInfo(QString);
    Q_INVOKABLE  QList<QString> queryEquNum();
    void connectAll();
    Q_INVOKABLE  void printClientList();
    Q_INVOKABLE  QList<QString> querySerialPort();


    //导出设置
    Q_INVOKABLE  QString readDefPath(); // 前端读数据库路径
    Q_INVOKABLE  void choosePath(); // 选择路径
    Q_INVOKABLE  QString readPath(); // 前端读临时路径
    Q_INVOKABLE  int writeDefPath();// 前端写数据库路径 0 写入成功 1 写入失败
    Q_INVOKABLE  void autoDout(int status); // 自动导出状态设置

    //默认设置
    Q_INVOKABLE  QVariantList refTableData(QString comName); // 前端读取数据
    Q_INVOKABLE  int addTableData(QString comName,QString value); // 前端写数据库路径 0 写入成功 1 写入失败
    Q_INVOKABLE  int setTableData(QString comName, QString code); // 前端写数据库路径 0 写入成功 1 写入失败
    Q_INVOKABLE  int delTableData(QString comName, QString code); // 前端写数据库路径 0 写入成功 1 写入失败
    Q_INVOKABLE  QString getDefaultData(QString comName);         // 获取默认字段

    Q_INVOKABLE  int updataTableData(QString comName, QString value, QString code);


    Q_INVOKABLE  QVariantList getDefaultChannel();   // 获取默认通道 - jnn

    //数据统计
    Q_INVOKABLE QVariantList getStaticNumInfo(QVariantMap);

    //偏好设置

    //实验恢复
    Q_INVOKABLE  int hfTableData(QString eqname,QString exename); // 前端写数据库路径 0 写入成功 1 写入失败

    //模型配置
    Q_INVOKABLE int importModel();
    Q_INVOKABLE int delModel(QString);
    Q_INVOKABLE QVariantList queryModelInfo(QVariantMap);
    Q_INVOKABLE int editHhpd(QVariantList);
    Q_INVOKABLE QVariantList getHhpd();
    Q_INVOKABLE int checkPassWord(QString);
    Q_INVOKABLE int editPassWord(QString);
    //变量
    int autostatus;
    QString fpath;
    int xhval;
    int syhftime=1;
    QTimer *timSend=new QTimer;

    Q_INVOKABLE QStringList tab3comread();
    Q_INVOKABLE QStringList getEq();// 设备名称前端获取
    Q_INVOKABLE QStringList getExename(QString name);// 实验名称获取
    Q_INVOKABLE int tzhf();
    Q_INVOKABLE QStringList jyname();// 基因名称获取
    Q_INVOKABLE QStringList sjhtypename();// 试剂盒类型获取
    Q_INVOKABLE QStringList txname();// 体系
    Q_INVOKABLE QStringList sjhmcname(QString type);// 试剂盒名称
private:
    CommonHelper *common;
};

#endif // SETUP_H
